﻿@*
//------------------------------------------------------------------------------
//  此代码版权声明为全文件覆盖，如有原作者特别声明，会在下方手动补充
//  此代码版权（除特别声明外的代码）归作者本人Diego所有
//  源代码使用协议遵循本仓库的开源协议及附加协议
//  Gitee源代码仓库：https://gitee.com/diego2098/ThingsGateway
//  Github源代码仓库：https://github.com/kimdiego2098/ThingsGateway
//  使用文档：https://diego2098.gitee.io/thingsgateway-docs/
//  QQ群：605534569
//------------------------------------------------------------------------------
*@

@namespace ThingsGateway.Web.Rcl
@using Masa.Blazor.Presets
@inherits CultureLayoutComponentBase
@layout BaseLayout
@if (UserManager.UserId > 0)
{
    <SignalR></SignalR>
}
<PPageTabsProvider>

    <CascadingValue Value="@this" IsFixed>
        <CascadingValue Value="@LanguageService.Culture">

            <MNavigationDrawer Color="barcolor" @bind-Value="_drawerOpen" App Width="200">
                @if (IsMobile)
                {
                    <MSystemBar Color="barcolor" Height="@(UserResoures.Themes.LayoutPrpo.PageTabsHeight)">
                        <MButton Icon OnClick=@(()=> _drawerOpen = !_drawerOpen)>
                            <MIcon>
                                mdi-close-thick
                            </MIcon>
                        </MButton>
                        <MSpacer />
                        <AppbarButtons LanguageChange=@LanguageChange />
                    </MSystemBar>
                }
                <Logo HeightInt=@(IsMobile?UserResoures.Themes.LayoutPrpo.AppBarHeight:UserResoures.Themes.LayoutPrpo.AppBarHeight+UserResoures.Themes.LayoutPrpo.PageTabsHeight) />
                <DefaultList ClassString="overflow-y-auto"
                             StyleString=@($"height: calc(100vh - {UserResoures.Themes.LayoutPrpo.AppBarHeight+UserResoures.Themes.LayoutPrpo.PageTabsHeight}px);")
                             Items="Navs" />
            </MNavigationDrawer>

            <MAppBar Style=@($"{(!(IsMobile||_drawerOpen!=true)? "left:200px;":"")}") Elevation="1" App Flat ClippedRight Dense ElevateOnScroll Color="barcolor"
                     MaxHeight="@(UserResoures.Themes.LayoutPrpo.AppBarHeight)" Height="@(UserResoures.Themes.LayoutPrpo.AppBarHeight)">
                <MButton Class="mr-0" Icon Small=IsMobile OnClick=@(() => _drawerOpen = !_drawerOpen)>
                    <MIcon>mdi-menu</MIcon>
                </MButton>
                <AppBarItems LanguageChange=@LanguageChange>
                </AppBarItems>

            </MAppBar>

                <MMain Style=@($"{(!(IsMobile||_drawerOpen!=true)? "padding-left:200px;":"")}")>
                <div class="full-width">
                    <PageTabs @ref="_pageTabs" />
                </div>
                <MDivider Center></MDivider>
                <MCard Flat Class="overflow-y-auto overflow-x-hidden ma-auto pa-0 rounded-0" Style=@($"height: calc(100vh - {UserResoures.Themes.LayoutPrpo.AppBarHeight+UserResoures.Themes.LayoutPrpo.PageTabsHeight+UserResoures.Themes.LayoutPrpo.FooterBarHeight}px);")>
                    <PPageContainer PageTabs="@_pageTabs?.PPageTabs">
                        @Body
                    </PPageContainer>
                </MCard>
                <MSheet Class="d-flex justify-center align-center rounded-0" Style=@($"height: {UserResoures.Themes.LayoutPrpo.FooterBarHeight}px;")>
                    <Foter></Foter>
                </MSheet>
            </MMain>
        </CascadingValue>
    </CascadingValue>

</PPageTabsProvider>

@code {
    private List<NavItem> Navs { get; set; } = new();
    private PageTabs _pageTabs;

    [CascadingParameter(Name = "IsMobile")]
    public bool IsMobile { get; set; }
}

